package com.lxd.service;

import java.util.List;

import com.lxd.entity.ClubRequest;
import com.lxd.entity.po.Member;
import com.lxd.entity.po.User;
import com.lxd.entity.query.ClubQuery;
import com.lxd.entity.po.Club;
import com.lxd.entity.vo.ClubVO;
import com.lxd.entity.vo.PaginationResultVO;
import com.lxd.entity.vo.UserInfoVO;


/**
 *  业务接口
 */
public interface ClubService {

	/**
	 * 根据条件查询列表
	 */
	List<Club> findListByParam(ClubQuery param);

	/**
	 * 根据条件查询列表
	 */
	Integer findCountByParam(ClubQuery param);

	/**
	 * 分页查询
	 */
	PaginationResultVO<ClubVO> findListByPage(ClubQuery param);

	/**
	 * 新增
	 */
	Integer add(ClubRequest clubRequest);

	/**
	 * 批量新增
	 */
	Integer addBatch(List<Club> listBean);

	/**
	 * 批量新增/修改
	 */
	Integer addOrUpdateBatch(List<Club> listBean);

	/**
	 * 多条件更新
	 */
	Integer updateByParam(Club bean,ClubQuery param);

	/**
	 * 多条件删除
	 */
	Integer deleteByParam(ClubQuery param);

	/**
	 * 根据Id查询对象
	 */
	Club getClubById(Long id);


	/**
	 * 根据Id修改
	 */
	Integer updateClubById(ClubRequest club,Long id);


	/**
	 * 根据Id删除
	 */
	Integer deleteClubById(Long id);

	List<Club> getMyClubByUserId(Long id);

	PaginationResultVO<ClubVO> findListByPage2(ClubQuery query);

	void toggleStatus(Long clubId, Integer status);

	/**
	 * 根据社团ID获取成员信息
	 */
	List<UserInfoVO> getMembersByClubId(Long clubId);

    Integer getTotalCount();

}